Données brutes collectées suivant les différentes sources:
Pour cette étude, nous avons récupéré les résultats du concours européen des sessions 2014 à 2019. Puis nous avons filtré sur les projets menés par des entreprises françaises uniquement. Cela correspond à 672 entreprises françaises portant un ou plusieurs projets.
L’objectif de l’analyse exploratoire étant de déterminer un profil moyen d’entreprise susceptible de remporter le concours Européen, nous n’allons conserver qu’un projet par entreprise.
Par la suite, un succès au concours Européen représentera un projet ayant reçu une note supérieure au seuil d’admissibilité, (13/20). Ainsi, on considère comme succès tout projet ayant effectivement été lauréat, mais également les projets admissibles mais non récompensés, pour cause de budget insuffisant ou par échec à l’épreuve orale.
Certaines entreprises ayant soumis un projet à différentes sessions du concours, on a conservé uniquement la première occurence de succès. Certains projets ont reçu une note supérieure au seuil mais n’ont pas été récompensés durant une session pour des causes mentionnées ci-dessus; les entreprises sont susceptibles de re-soumettre leur projet pour la session suivante. Dans ce cas-là, on ne gardera que la première occurence d’un projet ayant reçu une note suffisante. Dans le cas où il n’y a pas eu de succès, le dernier projet soumis au concours sera conservé.
Ainsi, on ne mesure pas la capacité d’une entreprise à remporter le concours Européen du premier coup, mais le potentiel d’une entreprise à être récompensée sur le long terme.
| Financières | Générales | Innovation | BPI | Projet |
|---|---|---|---|---|
| Chiffre d’affaire | Description de l’entreprise | Brevets (Y/N) | Suivie par BPI | Date du Projet |
| Bénéfice | Catégorie de l’entreprise | Nombre de brevets | Réseau BPI (Régions) | Années depuis la création de l’entreprise |
| Chiffre d’affaire moyen | Nombre d’employés | Domaine principal des brevets | Sourcing | Titre du projet |
| Bénéfice moyen | Mots-clés dans l’URL | Cabinet de Conseil | Coût total du projet | |
| Levée de fonds (Y/N) | Fonds demandés à l’UE | |||
| Nombre de levées de fonds (0/1/2+) | ||||
| Montant cumulé des levées de fonds (0/1/2+) |
Seule la variable cible Résultats va nous intéresser ici (uniquement si le projet a été sélectionné ou non).
Le chiffre d’affaire moyen des entreprises lauréates est inférieur à celui des entreprises non lauréates, avec une différence de chiffre d’affaires d’environ 1,751 M € à celui des entreprises non lauréates. Cette statistique est ainsi significative avec un taux de confiance à 10%.
De plus, la différence de médiane est également inférieure pour les entreprises lauréates par rapport aux entreprises non lauréates mais cette différence est n’est pas statistiquement significative.
De même, le bénéfice courant moyen des entreprises lauréates est inférieur à celui des entreprises non lauréates, avec une différence de bénéfice courant d’environ 1,185 M € à celui des entreprises non lauréates. Cette différence est très significative statistiquement.
De plus, la différence de médiane est également inférieure pour les entreprises lauréates par rapport aux entreprises non lauréates. Cette différence est statistiquement très significative.
On pourrait en déduire que les projets lauréats sont portés en moyenne par de plus petites entreprises, start-ups, en général. Ce Fonds Européen est effectivement destinés aux PMEs.
Le montant moyen du financement demandé à l’UE par les entreprises lauréates est supérieur à celui des entreprises non lauréates, avec une différence de montant d’environ 335 k € à celui des entreprises non lauréates. Cette différence est très significative statistiquement.
De plus, la différence de médiane est également supérieure pour les entreprises lauréates par rapport aux entreprises non lauréates. Cette différence est statistiquement très significative.
On peut en déduire que les projets lauréats sont en général plus conséquents et importants, ce qui recquiert un financement supplémentaire.
La durée annoncée pour le projet pour les entreprises lauréates est en moyenne supérieure à celle annoncée par les entreprises non lauréates. Une différence d’environ 2 mois supplémentaires est notable pour les entreprises lauréates.
Cependant la différence en moyenne n’était pas significative. En observant la durée annoncée des différents projets, on obtient:
| Durée (en mois) | Proportions (en %) |
|---|---|
| 24 | 66.37 |
| Moins de 24 | 23.51 |
| Plus de 24 | 10.12 |
Ainsi on voit que la majorité des projets (66%) annoncent une durée 24 mois et que 24% des projets annoncent une durée inférieure tandis que seulement 10% des projets annoncent une durée supérieure à 24 mois. Cela représente donc un niveau standard de durée et les projets qui annoncent une durée inférieure, potentiellement moins important ou moins innovant, ont plus de chances d’être rejetés.
| Durée (en mois) | Proportion de Non Lauréats (en %) | Lauréats (en %) |
|---|---|---|
| Moins de 24 | 65.19 | 34.81 |
| 24 | 44.84 | 55.16 |
| Plus de 24 | 45.59 | 54.41 |
De même, les projets plus courts (inférieurs à 24 mois) ont plus de chance d’être rejetés par rapport aux projets de 24 mois ou plus.
Le nombre moyen de levées de fonds effectuées par les entreprises lauréates est en moyenne supérieure à celui des entreprises non lauréates. Cette différence est ainsi statistiquement significative.
Ainsi, une entreprise qui a déjà levé des fonds a plus de chances d’être lauréate du concours.
Cependant la différence de médiane n’était pas significative. En observant le nombre de levées de fonds des entreprises, on obtient:
| Levées de fonds | Proportions (en %) |
|---|---|
| 0 | 72.32 |
| 1 | 19.49 |
| 2+ | 8.18 |
Ainsi on voit que la majorité des entreprises n’ont jamais effectué de levées de fonds avant de soumettre leur projet (72%) tandis que 19% des entreprises ont effectué une levée de fonds avant la soumission du projet et seulement 8% des entreprises ont effectué 2 levées de fonds ou plus avant ce projet.
| Nombre de levées de fonds effectuées | Proportion de Non Lauréats (en %) | Lauréats (en %) |
|---|---|---|
| 0 | 52.47 | 47.53 |
| 1 | 45.04 | 54.96 |
| 2+ | 36.36 | 63.64 |
On observe ainsi que la plupart des entreprises n’ont pas effectué de levées de fonds avant la soumission du projet. De plus, le fait qu’une entreprise ait déjà levé des fonds peut augmenter les chances du projet à être récompensé.
Parmi ceux qui ont déjà effectué au moins une levée de fonds
Les différences de moyenne et de médiane sont ne sont pas significatives, on ne peut pas conclure.
En isolant uniquement les entreprises ayant effectué au moins une levée de fonds
Le montant cumulé moyen des levées de fonds effectuées par les entreprises lauréates est en moyenne supérieure à celui des entreprises non lauréates. Cette différence moyenne de 3.513 M € est ainsi statistiquement significative.
Ainsi, une entreprise qui a déjà levé des fonds, et notamment des levées de fonds conséquentes, a plus de chances d’être lauréate du concours.
Cependant la différence de médiane est nulle en moyenne. En observant le montant de levées de fonds des entreprises, on obtient les 5 montants cumulés les plus courants:
| Montant Cumulé des levées de fonds (en M €) | Proportions (en %) |
|---|---|
| 2.0 | 5.913978 |
| 1.0 | 5.376344 |
| 2.5 | 4.301075 |
| 1.2 | 3.763441 |
| 3.0 | 3.763441 |
| 1.5 | 2.688172 |
Ces principaux montants de fonds cumulés ne représentent qu’une petite partie des entreprises ayant déjà effectué une levée de fonds, et aucun montant ne se démarque significativement des autres.
Le nombre moyen de brevets déposés par une entreprise lauréate est supérieure à celui d’une entreprise non lauréate. Toutefois, les différences de moyenne et de médiane sont peu significatives.
En observant la répartition du nombre de brevets déposés par entreprise, on obtient:
| Nombre de brevets déposés | Proportions (en %) |
|---|---|
| 0 | 66.369048 |
| 1 | 12.797619 |
| 2 | 6.845238 |
| 3 | 3.571429 |
| 4 | 3.273810 |
| 5+ | 7.142857 |
| Nombre de brevets déposés | Proportion de Non Lauréats (en %) | Lauréats (en %) |
|---|---|---|
| 0 | 52.91 | 47.09 |
| 1 | 41.86 | 58.14 |
| 2 | 41.30 | 58.70 |
| 3 | 33.33 | 66.67 |
| 4 | 59.09 | 40.91 |
| 5+ | 45.83 | 54.17 |
On observe ainsi que la plupart des entreprises n’ont pas déposé de brevets avant la soumission du projet. De plus, le fait qu’une entreprise ait déjà déposé un brevet n’influe pas statistiquement de manière significative mais peut potentiellement augmenter les chances du projet à être récompensé.
Le temps moyen (en années) d’une entreprise lauréate entre sa création et son dépôt du projet est inférieur à celui d’une entreprise non lauréate, avec une différence d’environ 1 an. Toutefois, les différences de moyenne et de médiane sont peu significatives.
Etant donné que certaines des sources ne couvrent pas les informations de l’ensemble des 672 entreprises françaises, nous avons dû restreindre le nombre d’entreprises étudiés pour ces variables catégorielles aux entreprises dont toutes les informations sont renseignées. Cela représente ainsi 102 entreprises pour cette étude.
Il y a 0 variable(s) catégorielle(s) qui a/ont une corrélation différente de 0 par rapport à nos groupes.
Il y a 4 modalités qui ont une corrélation significative par rapport aux Résultats.
Si on décide de garder toutes les entreprises mais on enlève les variables possédant des valeurs manquantes (sur les entreprises non suivies par BPI notamment), on obtient l’analyse suivante.
Ainsi, les variables suivantes avec plus de 400 valeurs manquantes sur la totalité des 672 entreprises seront filtrées:
Il y a 2 variable(s) catégorielle(s) qui a/ont une corrélation différente de 0 par rapport à nos groupes.
DurationCat et fundraisings_countCat sont des variables créées afin de rassembler différents groupes:
DurationCat, représentant la durée annoncée du projet, possède 3 niveaux de valeurs : 24-, 24 et 24+ en mois.
fundraisings_countCat, représentant le nombre de levées de fonds, possède 3 niveaux de valeurs : 0, 1 et 2+.
On retrouve la corrélation significative du fait d’avoir déjà déposé un brevet auparavant:
De plus les facteurs positifs sont ici:
| Variables | Modalité | Influence sur le Résultat |
|---|---|---|
| Bénéfice courant | Quantitative | Une valeur faible augmente les chances d’être récompensé |
| Montant du financement demandé à l’UE | Quantitative | Un montant élevé augmente les chances d’être récompensé |
| Durée annoncée | Quantitative | Une valeur supérieure ou égale à 24 mois augmente les chances d’être récompensé |
| Nombre de levées de fonds | Quantitative | Au moins 1 levée de fonds augmente les chances d’être récompensé |
| Montant cumulé des levées de fonds | Quantitative | Un montant élevé augmente les chances d’être récompensé |
| Sourcing | Entreprises | diminue les chances d’être récompensé |
| Brevets déposés | Oui | augmente les chances d’être récompensé |
| Entreprise | Ouverte au marché international | augmente les chances d’être récompensé |
Pour enlever le biais des thèmes imposés lors du Concours Europeéns avant 2018, on ne considérera que les projets sous le nouveau format, après 2018, sans thème imposé. Cela correspond à 189 entreprises françaises.
import numpy as np
import pandas as pd
Load
df_data = pd.read_csv('./data/df_data_enriched.csv', encoding='utf-8')
All features
# All variables
col2class = ['revenue', 'operatingIncome', 'revenue_means', 'operatingIncome_means',
'has_fundraisings', 'fundraisings_count', 'fundraisings_countCat',
'fundraisings_amount',
'categories_B2B', 'categories_B2C',
'categories_international', 'categories_ecommerce',
'employees_means', 'employees',
'has_patents', 'patents_count', 'patents_countCat', 'patents_categories',
'SUIVI_BPI', 'RESEAU_BPI', 'Sourcing', 'CabinetConseil',
'PFT', 'ILAB',
'DeltaCreationTime', 'Duration', 'DurationCat',
'TotalCost', 'RequestedEUContribution',
'Results']
# All data
print("Number of projects:", df_data.shape[0], "\nNumber of features:", len(col2class))
# Non-missing values by columns
col2na = dict()
for col in col2class:
col2na[col] = df_data[~df_data[col].isna()].shape[0]
print("\nFeatures and non-missing values count:\n", {k: v for k, v in sorted(col2na.items(), key=lambda item: item[1], reverse=True)})
Filtering out missing values
# Select by minimal number of values
col2class_filt = [col for col in col2class if col2na[col]>300]
#col2class_filt = col2class
df_class = df_data[col2class_filt].dropna()
# Variables taken into account
print("Features left:\n", col2class_filt)
# Number of rows and columns left
print("Number of projects left:", df_class.shape[0], "\nNumber of features left:", df_class.shape[1])
Classification model
### Classification model
from interpret import show
from interpret.data import ClassHistogram
from interpret.provider import InlineProvider
from interpret import set_visualize_provider
# Visualization with dashboards
set_visualize_provider(InlineProvider())
Data
# Data from before 2019 as a training set
train_index = df_class.index.isin(np.where(df_data.Date.values<20190101)[0])
X_train = df_class.loc[train_index, col2class_filt[:-1]].dropna()
y_train = df_class.loc[train_index, col2class_filt[-1]].dropna()
# Data from 2019 as a testing set
test_index = df_class.index.isin(np.where(df_data.Date.values>20181231)[0])
X_test = df_class.loc[test_index, col2class_filt[:-1]].dropna()
y_test = df_class.loc[test_index, col2class_filt[-1]].dropna()
Histogram
# Histogram
hist = ClassHistogram().explain_data(X_train, y_train, name = 'Train Data')
show(hist)
Global model
# Hyperparameters
params = {'n_estimators': 12,
'holdout_size': 0.1,
'holdout_split': 0.1,
'early_stopping_tolerance': 1e-06,
'early_stopping_run_length': 40,
'learning_rate': 0.01,
'training_step_episodes': 3,
'max_tree_splits': 3,
'min_cases_for_splits': 1}
from interpret.glassbox import ExplainableBoostingClassifier
ebm = ExplainableBoostingClassifier(**params)
ebm.fit(X_train, y_train) #Works on dataframes and numpy arrays
# Explain global model
ebm_global = ebm.explain_global(name='EBM')
show(ebm_global)
Performance
# Performance ROC AUC
from interpret.perf import ROC
ebm_perf = ROC(ebm.predict_proba).explain_perf(X_test, y_test, name='EBM')
show(ebm_perf)